/**
 *
 */
package com.ybkj.daijia.server.service;

import com.ybkj.daijia.page.Page;
import com.ybkj.daijia.server.model.Role;
import java.util.List;

/**
 * @author Shine
 *
 */
public interface RoleService {

    /**
     * 根据角色名模糊查询角色信息
     *
     * @param companyid
     *
     * @param name
     *
     * @return name为null则查询出所有的信息，否则只查询出与name匹配的信息
     */
    public Page<Role> queryAll(Long companyid, String name);

    /**
     * 保存角色信息
     *
     * @param role
     * @return
     */
    public Role insertRole(Role role);

    /**
     * 根据ID查询出角色信息
     *
     * @param id
     * @return
     */
    public Role findOne(Long id);

    /**
     * 根据ID查询出角色信息
     * @param id
     * @return
     */
    public Role findOneWithPerms(Long id);

    /**
     * 根据批量删除一组数据
     *
     * @param role
     */
    public void delete(Role role);

    /**
     * 根据角色名称查询出角色信息
     *
     * @param name
     * @return
     */
    public Role findByName(String name);

    /**
     * 查询出所有的角色信息
     *
     * @return
     */
    public List<Role> findAll();

    /**
     * 根据ID查询出角色信息
     *
     * @param roleIds
     * @return
     */
    public List<Role> findByIdIn(Long[] roleIds);

    /**
     * 根据管理员查询角色信息
     *
     * @param id
     * @return
     */
    public List<Role> findByAdmin(Long id);

    /**
     * 根据主键更新角色信息
     *
     * @param role
     * @return
     */
    public long updateByPrimaryKey(Role role);

    /**
     * 根据公司ID查询role
     * @param companyId
     * @return
     */
    List<Role> listByCompanyId(Long companyId);

}
